import axios from 'axios'
import qs from 'qs'
import { Toast, Indicator } from 'mint-ui'
// 服务器api地址
let baseUrl = location.origin + '/index.php/weixin/'
if (process.env.NODE_ENV === 'development') {
  // baseUrl = 'http://mock.inrice.cn:3333/addon/cmbcRed/'
  // baseUrl = 'https://cmbc.red.inrice.cn/index.php/weixin/'
  baseUrl = ''
}
axios.defaults.baseURL = baseUrl
// post的defaults就是下面这种content-type，详情请看我的博客 http://eliaztray.farbox.com/post/vue/vue-resourceqian-yi-axios
// 开启跨域凭证,否则不携带cookie请求.
axios.defaults.withCredentials = true
// 对传送的data做转换,转成非application/json的传输。这里注意传输的类型，根据后端是否使用JSON_DECODE来决定是否开启。
axios.defaults.transformRequest = [function (data) {
  return qs.stringify(data)
}]
// Add a request interceptor
axios.interceptors.request.use(config => {
  Indicator.open()
  return config
}, error => {
  // Do something with request error
  return Promise.reject(error)
})

// Add a response interceptor
axios.interceptors.response.use(response => {
  // 这边前端采用路由的方式，那重定向3XX的类型就不会存在返回码中了
  // debugger
  // 在我们系统中，设置自定义返回码为2时，走重定向
  Indicator.close()
  if (response.data.errcode === 2) {
    window.location.href = response.data.data
  }
  if (response.data.errcode === 1) {
    Toast(response.data.msg)
  }
  return response
}, error => {
  // Do something with response error
  Indicator.close()
  if (error.response.status === 404) {
  }
  if (error.response.status === 500) {
    Toast('服务器繁忙,请稍后重试')
  }
  // 这里最好resolve掉服务器错误这种情况，省的之后还要catch
  return Promise.resolve(error.response)
})

export default axios
